package com.ls.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ls.server.domain.ChatModel;
import com.ls.server.dto.ChatModelDTO;
import com.ls.server.dto.ChatQueryDTO;
import com.ls.server.vo.ChatModelVO;
import com.ls.server.vo.PageResult;

import java.util.List;

/**
 * 聊天模型Service接口
 */
public interface ChatModelService extends IService<ChatModel> {
    
    /**
     * 获取所有可用的聊天模型列表
     *
     * @return 聊天模型列表
     */
    List<ChatModelVO> listEnabledModels();
    
    /**
     * 获取所有聊天模型列表
     *
     * @return 聊天模型列表
     */
    List<ChatModelVO> listAllModels();
    
    /**
     * 根据ID获取聊天模型
     *
     * @param id 模型ID
     * @return 聊天模型信息
     */
    ChatModelVO getModelById(Long id);
    
    /**
     * 创建聊天模型
     *
     * @param dto 聊天模型信息
     * @return 创建结果
     */
    boolean createModel(ChatModelDTO dto);
    
    /**
     * 更新聊天模型
     *
     * @param dto 聊天模型信息
     * @return 更新结果
     */
    boolean updateModel(ChatModelDTO dto);
    
    /**
     * 启用或禁用聊天模型
     *
     * @param id 模型ID
     * @param enabled 是否启用
     * @return 操作结果
     */
    boolean enableModel(Long id, Boolean enabled);

    /**
     * 分页查询模型
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    PageResult<ChatModelVO> page(ChatQueryDTO queryDTO);

    /**
     * 删除模型
     * @param id 模型ID
     * @return 是否成功
     */
    Boolean delete(Long id);
} 